home *** CD-ROM | disk | FTP | other *** search
- onClipEvent(enterFrame){
- if(_visible)
- {
- if(_Y > 611)
- {
- _Y = 0;
- }
- if(sost == 9)
- {
- if(_currentframe < frame_dead || _currentframe > frame_dead_last)
- {
- gotoAndPlay(frame_dead);
- }
- if(dead_count < 43)
- {
- if(dead_count == 32)
- {
- if(!_level0.no_sound)
- {
- _level0.snds[_level0.snd_frozen_explode].start();
- }
- }
- dead_count++;
- }
- else
- {
- _level0.snowball_count = _level0.snowball_count + 1;
- _level0.bonus.duplicateMovieClip("bonus" + _level0.snowball_count,1000 + _level0.snowball_count);
- do
- {
- bonus = random(8) + 1;
- }
- while(bonus == 4);
-
- eval("_level0.bonus" + _level0.snowball_count).gotoAndStop(bonus);
- eval("_level0.bonus" + _level0.snowball_count)._x = _X;
- eval("_level0.bonus" + _level0.snowball_count)._y = _Y;
- eval("_level0.bonus" + _level0.snowball_count)._visible = true;
- if(super_bonus)
- {
- super_bonus = false;
- if(!_level0.no_sound)
- {
- _level0.snds[_level0.snd_greatkick].start();
- }
- var i = 1;
- while(eval("_level0.L" + _level0.global_level + "_bonus" + i + "i") !== undefined)
- {
- _level0.snowball_count = _level0.snowball_count + 1;
- _level0.bonus.duplicateMovieClip("bonus" + _level0.snowball_count,1000 + _level0.snowball_count);
- eval("_level0.bonus" + _level0.snowball_count).gotoAndStop(4);
- eval("_level0.bonus" + _level0.snowball_count)._x = Number(eval("_level0.L" + _level0.global_level + "_bonus" + i + "i")) * 40 + 20;
- eval("_level0.bonus" + _level0.snowball_count)._y = (- (13 - Number(eval("_level0.L" + _level0.global_level + "_bonus" + i + "j")))) * 40;
- eval("_level0.bonus" + _level0.snowball_count).start_y = Number(eval("_level0.L" + _level0.global_level + "_bonus" + i + "j")) * 40 + 12;
- eval("_level0.bonus" + _level0.snowball_count)._visible = true;
- i++;
- }
- }
- this.removeMovieClip();
- }
- }
- else if(sost == 8 && knock_index != undefined)
- {
- if(knock_index < knock_speed_y.length)
- {
- dy = - knock_speed_y[knock_index];
- }
- else if(knock_index < knock_speed_y.length * 2)
- {
- dy = knock_speed_y[knock_speed_y.length * 2 - knock_index - 1];
- }
- else
- {
- dy = knock_speed_y[0];
- }
- knock_index++;
- if(_Y + dy >= 0)
- {
- _Y = _Y + dy;
- }
- else if(knock_index < knock_speed_y.length)
- {
- knock_index = knock_speed_y.length;
- }
- if(_xscale < 0)
- {
- if(_X <= 21)
- {
- _X = 21 + knock_speed_x;
- _xscale = - _xscale;
- }
- else if(_level0.pole[Math.floor(_Y / 40)][Math.floor((_X - 8 - knock_speed_x) / 40)] != 0 && _level0.pole[Math.floor(_Y / 40)][Math.floor((_X - 8) / 40)] == 0)
- {
- _xscale = - _xscale;
- }
- else
- {
- _X = _X - knock_speed_x;
- }
- }
- else if(_X >= 781)
- {
- _X = 781 - knock_speed_x;
- _xscale = - _xscale;
- }
- else if(_level0.pole[Math.floor(_Y / 40)][Math.floor((_X + 6 + knock_speed_x) / 40)] != 0 && _level0.pole[Math.floor(_Y / 40)][Math.floor((_X + 6) / 40)] == 0)
- {
- _xscale = - _xscale;
- }
- else
- {
- _X = _X + knock_speed_x;
- }
- cy = Math.floor((_Y + 29) / 40);
- cx0 = Math.floor((_X - 8) / 40);
- cx1 = Math.floor((_X + 6) / 40);
- if(knock_index > knock_speed_y.length && (_level0.pole[cy][cx0] != 0 || _level0.pole[cy][cx1] != 0) && (_level0.pole[Math.floor((_Y + 29 - dy) / 40)][cx0] == 0 || _level0.pole[Math.floor((_Y + 29 - dy) / 40)][cx1] == 0))
- {
- if(random(2) == 0 || knock_skip || cy > 10)
- {
- if(_level0.pole[cy][cx1] == 3)
- {
- dx = _X + 6 - cx1 * 40;
- _Y = cy * 40 + 8 - dx;
- }
- else if(_level0.pole[cy][cx0] == 4)
- {
- dx = _X - 8 - cx0 * 40;
- _Y = cy * 40 + dx - 30;
- }
- else
- {
- _Y = cy * 40 - 29;
- }
- if(!boss_throw)
- {
- sost = 9;
- dead_count = 0;
- gotoAndPlay(frame_dead);
- }
- else
- {
- boss_throw = false;
- sost = 1;
- ai_sost = 1;
- gotoAndPlay(frame_walk);
- }
- }
- else
- {
- knock_skip = true;
- }
- }
- }
- else
- {
- found = false;
- land = false;
- if(sost == 3)
- {
- if((_currentframe < frame_fall || _currentframe > frame_fall_last) && ai_sost != 9)
- {
- gotoAndPlay(frame_fall);
- }
- fall_speed = world_fall_speed;
- cy = Math.floor((_Y + 28 + fall_speed) / 40);
- cx0 = Math.floor((_X - 8) / 40);
- cx1 = Math.floor((_X + 6) / 40);
- if(_Y > 0 && _level0.pole[cy][cx1] == 3)
- {
- dx = _X + 6 - cx1 * 40;
- if(_Y + fall_speed < cy * 40 + 8 - dx)
- {
- _Y = _Y + fall_speed;
- fall_count += fall_speed;
- }
- else
- {
- _Y = cy * 40 + 8 - dx;
- if(ai_sost == 9 && snow_ball && fall_count >= fall_count_jump)
- {
- sost = 2;
- jump_index = 2;
- fall_count = 0;
- }
- else
- {
- sost = 1;
- land = true;
- }
- }
- found = true;
- }
- else if(_Y > 0 && _level0.pole[cy][cx0] == 4)
- {
- dx = _X - 8 - cx0 * 40;
- if(_Y + fall_speed < cy * 40 + dx - 30)
- {
- _Y = _Y + fall_speed;
- fall_count += fall_speed;
- }
- else
- {
- _Y = cy * 40 + dx - 30;
- if(ai_sost == 9 && snow_ball && fall_count >= fall_count_jump)
- {
- sost = 2;
- jump_index = 2;
- fall_count = 0;
- }
- else
- {
- sost = 1;
- land = true;
- }
- }
- found = true;
- }
- if(!found)
- {
- if(_Y < 0 || Math.floor((_Y + 28) / 40) == Math.floor((_Y + 28 + world_fall_speed) / 40))
- {
- _Y = _Y + world_fall_speed;
- fall_count += world_fall_speed;
- }
- else
- {
- var fall_speed = world_fall_speed;
- while(fall_speed > 0)
- {
- cy = Math.floor((_Y + 28 + fall_speed) / 40);
- cx0 = Math.floor((_X - 8) / 40);
- cx1 = Math.floor((_X + 6) / 40);
- if(_Y > 520 || _level0.pole[cy][cx0] == 0 && _level0.pole[cy][cx1] == 0)
- {
- _Y = _Y + fall_speed;
- fall_count += fall_speed;
- break;
- }
- if(ai_sost == 9 && snow_ball && fall_count >= fall_count_jump)
- {
- sost = 2;
- jump_index = 2;
- fall_count = 0;
- break;
- }
- sost = 1;
- land = true;
- if(ai_sost != 8 && ai_sost != 9)
- {
- ai_sost = 1;
- }
- fall_speed--;
- }
- }
- }
- }
- if(sost == 1)
- {
- var i = 1;
- while(i <= _level0.num_monsters)
- {
- if(eval("_level0.monster" + i) != undefined && "/monster" + i != _target)
- {
- if(eval("_level0.monster" + i).sost != 8 && eval("_level0.monster" + i).sost != 9 && eval("_level0.monster" + i).sost != 10 && eval("_level0.monster" + i).ai_sost != 2 && (_X + 10 >= eval("_level0.monster" + i)._x - 27 && _X - 12 <= eval("_level0.monster" + i)._x + 25 && (_Y + 28 >= eval("_level0.monster" + i)._y - 8 && _Y - 8 <= eval("_level0.monster" + i)._y + 28)))
- {
- if(eval("_level0.monster" + i)._xscale == _xscale && ai_sost != 9 && ai_sost != 2)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- break;
- }
- }
- }
- i++;
- }
- }
- if(sost == 2 && jump_index != undefined)
- {
- _Y = _Y - jump_speed[jump_index];
- jump_index++;
- var dx = 12;
- var i = 1;
- while(i <= _level0.num_monsters)
- {
- if(eval("_level0.monster" + i) != undefined && "/monster" + i != _target)
- {
- if(!eval("_level0.monster" + i).boss && eval("_level0.monster" + i).sost != 8 && eval("_level0.monster" + i).sost != 9 && eval("_level0.monster" + i).sost != 10 && (_X + dx >= eval("_level0.monster" + i)._x - 27 && _X - dx <= eval("_level0.monster" + i)._x + 25 && (_Y - 16 >= eval("_level0.monster" + i)._y - 8 && _Y - 16 <= eval("_level0.monster" + i)._y + 28)))
- {
- eval("_level0.monster" + i).sost = 2;
- eval("_level0.monster" + i).jump_index = 2;
- eval("_level0.monster" + i).fall_count = 0;
- break;
- }
- }
- i++;
- }
- if(jump_index >= jump_speed.length)
- {
- jump_index = undefined;
- sost = 3;
- if(ai_sost != 8 && ai_sost != 9)
- {
- ai_sost = 1;
- }
- }
- }
- dx = 0;
- dy = 0;
- if(_level0.pole[Math.floor((_Y + 28) / 40)][Math.floor((_X - 12) / 40)] == 4 || _level0.pole[Math.floor((_Y + 28) / 40)][Math.floor((_X + 10) / 40)] == 4 && sost == 1)
- {
- dx = 2;
- dy = 2;
- }
- else if(_level0.pole[Math.floor((_Y + 28) / 40)][Math.floor((_X - 12) / 40)] == 3 || _level0.pole[Math.floor((_Y + 28) / 40)][Math.floor((_X + 10) / 40)] == 3 && sost == 1)
- {
- dx = -2;
- dy = 2;
- }
- if(dx != 0 && dy != 0)
- {
- var found_monster = false;
- var i = 1;
- while(i <= _level0.num_monsters)
- {
- if(eval("_level0.monster" + i) != undefined && "/monster" + i != _target)
- {
- if(eval("_level0.monster" + i).sost != 8 && eval("_level0.monster" + i).sost != 9 && eval("_level0.monster" + i).sost != 10 && (_Y + 28 + dy >= eval("_level0.monster" + i)._y - 11 && _Y - 11 + dy <= eval("_level0.monster" + i)._y + 28) && !(eval("_level0.monster" + i).ai_sost == 9 && !eval("_level0.monster" + i).snow_ball))
- {
- right = false;
- left = false;
- if(_X + 10 + dx + speed >= eval("_level0.monster" + i)._x - 27 && _X + 10 + dx <= eval("_level0.monster" + i)._x - 27)
- {
- right = true;
- }
- if(_X - 12 + dx >= eval("_level0.monster" + i)._x + 25 && _X - 12 + dx - speed <= eval("_level0.monster" + i)._x + 25)
- {
- left = true;
- }
- if(right || left)
- {
- if(ai_sost != 9 && ai_sost != 2 && (right && _xscale > 0 || left && _xscale < 0))
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- }
- dx = 0;
- dy = 0;
- break;
- }
- }
- }
- i++;
- }
- _X = _X + dx;
- _Y = _Y + dy;
- }
- else if(!found)
- {
- if(sost == 1)
- {
- if(_Y > 520 || _level0.pole[Math.floor((_Y + 29) / 40)][Math.floor((_X - 8) / 40)] == 0 && _level0.pole[Math.floor((_Y + 29) / 40)][Math.floor((_X + 6) / 40)] == 0)
- {
- sost = 3;
- if(ai_sost != 8 && ai_sost != 9)
- {
- ai_sost = 1;
- }
- }
- else
- {
- if(ai_sost == 9 && snow_ball && fall_count >= fall_count_jump)
- {
- sost = 2;
- jump_index = 0;
- }
- else
- {
- sost = 1;
- }
- fall_count = 0;
- }
- }
- }
- switch(ai_sost)
- {
- case 9:
- if(frozen_count > 0)
- {
- if(snow_ball && (_currentframe < frame_ball || _currentframe > frame_ball_last))
- {
- gotoAndPlay(frame_ball);
- }
- if(snow_ball_hit && !snow_ball)
- {
- gotoAndPlay(frame_frozen_last - frozen_count);
- snow_ball_hit = false;
- snow_ball_move = false;
- }
- frozen_count--;
- if(frozen_count > 99)
- {
- snow_ball = true;
- }
- else
- {
- gotoAndPlay(frame_frozen_last - frozen_count);
- snow_ball = false;
- snow_ball_move = false;
- }
- }
- else
- {
- ai_sost = 8;
- wet_count = 16;
- snow_ball = false;
- snow_ball_move = false;
- }
- case 1:
- if(sost == 1 || sost == 2 && jump_side)
- {
- if(ai_sost == 1)
- {
- speed = 8;
- }
- if(ai_sost == 9)
- {
- speed = 4;
- }
- if(_xscale < 0)
- {
- if(_X <= 21)
- {
- if(ai_sost != 9)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- }
- }
- else if(_Y < 0)
- {
- sost = 3;
- }
- else
- {
- var found_monster = false;
- var i = 1;
- while(i <= _level0.num_monsters)
- {
- if(eval("_level0.monster" + i) != undefined && "/monster" + i != _target)
- {
- if(eval("_level0.monster" + i).sost != 8 && eval("_level0.monster" + i).sost != 9 && eval("_level0.monster" + i).sost != 10 && (_Y + 28 >= eval("_level0.monster" + i)._y - 11 && _Y - 11 <= eval("_level0.monster" + i)._y + 28) && !(eval("_level0.monster" + i).ai_sost == 9 && !eval("_level0.monster" + i).snow_ball))
- {
- right = false;
- left = false;
- if(_X + 10 + speed >= eval("_level0.monster" + i)._x - 27 && _X + 10 <= eval("_level0.monster" + i)._x - 27)
- {
- right = true;
- }
- if(_X - 12 >= eval("_level0.monster" + i)._x + 25 && _X - 12 - speed <= eval("_level0.monster" + i)._x + 25)
- {
- left = true;
- }
- if(right || left)
- {
- if(ai_sost != 9 && ai_sost != 2 && left)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- found_monster = true;
- break;
- }
- }
- }
- }
- i++;
- }
- if(!found_monster)
- {
- if(_level0.pole[Math.floor((_Y + 28 - speed) / 40)][Math.floor((_X - 8 - speed) / 40)] == 4 || _level0.pole[Math.floor((_Y + 28) / 40)][Math.floor((_X - 8) / 40)] == 4)
- {
- if(ai_sost != 9 || move_snow_ball)
- {
- _X = _X - speed;
- _Y = _Y - speed;
- move_snow_ball = false;
- }
- }
- else
- {
- cx = Math.floor((_X - 8 - speed) / 40);
- cy = Math.floor((_Y + 28) / 40);
- switch(_level0.pole[cy][cx])
- {
- case 0:
- case 1:
- if(ai_sost != 9 || move_snow_ball)
- {
- if(_level0.pole[Math.floor((_Y + 28 + speed) / 40)][Math.floor((_X + 6) / 40)] == 3)
- {
- _Y = _Y + speed;
- }
- _X = _X - speed;
- move_snow_ball = false;
- }
- jump_side = false;
- break;
- case 2:
- if(ai_sost != 9)
- {
- if(cy >= 2 && sost != 2 && (_level0.pole[cy - 1][cx] == 0 || _level0.pole[cy - 2][cx] == 0) && (random(2) == 0 || _level0.hero.sost != 3 && Math.round((_level0.hero._y + 28) / 40) + 1 < cy))
- {
- if(_currentframe < frame_jump || _currentframe > frame_jump_last)
- {
- gotoAndPlay(frame_jump);
- }
- jump_index = 0;
- sost = 2;
- jump_side = true;
- }
- else if(!jump_side)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- }
- }
- break;
- case 3:
- if(ai_sost != 9 || move_snow_ball)
- {
- _X = _X - speed;
- _Y = _Y + speed;
- move_snow_ball = false;
- }
- break;
- case 4:
- if(ai_sost != 9 || move_snow_ball)
- {
- _X = _X - speed;
- _Y = _Y - speed;
- move_snow_ball = false;
- }
- }
- }
- }
- }
- }
- else if(_X >= 781)
- {
- if(ai_sost != 9)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- }
- }
- else if(_Y < 0)
- {
- sost = 3;
- }
- else
- {
- var found_monster = false;
- var i = 1;
- while(i <= _level0.num_monsters)
- {
- if(eval("_level0.monster" + i) != undefined && "/monster" + i != _target)
- {
- if(eval("_level0.monster" + i).sost != 8 && eval("_level0.monster" + i).sost != 9 && eval("_level0.monster" + i).sost != 10 && (_Y + 28 >= eval("_level0.monster" + i)._y - 11 && _Y - 11 <= eval("_level0.monster" + i)._y + 28) && !(eval("_level0.monster" + i).ai_sost == 9 && !eval("_level0.monster" + i).snow_ball))
- {
- right = false;
- left = false;
- if(_X + 10 + speed >= eval("_level0.monster" + i)._x - 27 && _X + 10 <= eval("_level0.monster" + i)._x - 27)
- {
- right = true;
- }
- if(_X - 12 >= eval("_level0.monster" + i)._x + 25 && _X - 12 - speed <= eval("_level0.monster" + i)._x + 25)
- {
- left = true;
- }
- if(right || left)
- {
- if(ai_sost != 9 && ai_sost != 2 && right)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- found_monster = true;
- break;
- }
- }
- }
- }
- i++;
- }
- if(!found_monster)
- {
- if(_level0.pole[Math.floor((_Y + 28 - speed) / 40)][Math.floor((_X + 6 + speed) / 40)] == 3 || _level0.pole[Math.floor((_Y + 28) / 40)][Math.floor((_X + 6) / 40)] == 3)
- {
- if(ai_sost != 9 || move_snow_ball)
- {
- _X = _X + speed;
- _Y = _Y - speed;
- move_snow_ball = false;
- }
- }
- else
- {
- cx = Math.floor((_X + 6 + speed) / 40);
- cy = Math.floor((_Y + 28) / 40);
- switch(_level0.pole[cy][cx])
- {
- case 0:
- case 1:
- if(ai_sost != 9 || move_snow_ball)
- {
- if(_level0.pole[Math.floor((_Y + 28 + speed) / 40)][Math.floor((_X - 8) / 40)] == 4)
- {
- _Y = _Y + speed;
- }
- _X = _X + speed;
- move_snow_ball = false;
- }
- jump_side = false;
- break;
- case 2:
- if(ai_sost != 9)
- {
- if(cy >= 2 && sost != 2 && (_level0.pole[cy - 1][cx] == 0 || _level0.pole[cy - 2][cx] == 0) && (random(2) == 0 || _level0.hero.sost != 3 && Math.round((_level0.hero._y + 28) / 40) + 1 < cy))
- {
- if(_currentframe < frame_jump || _currentframe > frame_jump_last)
- {
- gotoAndPlay(frame_jump);
- }
- jump_index = 0;
- sost = 2;
- jump_side = true;
- }
- else if(!jump_side)
- {
- ai_sost = 2;
- turn_count = max_turn_count;
- }
- }
- break;
- case 3:
- if(ai_sost != 9 || move_snow_ball)
- {
- _X = _X + speed;
- _Y = _Y - speed;
- move_snow_ball = false;
- }
- break;
- case 4:
- if(ai_sost != 9 || move_snow_ball)
- {
- _X = _X + speed;
- _Y = _Y + speed;
- move_snow_ball = false;
- }
- }
- }
- }
- }
- }
- if(sost == 1 && ai_sost == 1 && (Math.round((_level0.hero._y + 28) / 40) + 1 < Math.round((_Y + 28) / 40) && (_level0.hero.sost != 3 && _level0.hero.sost != 4 && _level0.hero.sost != 9 && _level0.hero.sost != 10) || random(64) == 0 && ai_sost == 1 && Math.round((_Y + 28) / 40) > 2) && _level0.pole[Math.floor((_Y - 13) / 40)][Math.floor(_X / 40)] == 1)
- {
- if(_currentframe < frame_jump || _currentframe > frame_jump_last)
- {
- gotoAndPlay(frame_jump);
- }
- jump_index = 0;
- sost = 2;
- }
- if(sost == 1)
- {
- if(ai_sost == 1)
- {
- if(_currentframe < frame_walk || _currentframe > frame_walk_last)
- {
- gotoAndPlay(frame_walk);
- }
- }
- }
- break;
- case 2:
- if(_currentframe < frame_turn || _currentframe > frame_turn_last)
- {
- gotoAndPlay(frame_turn);
- }
- if(turn_count > 0)
- {
- turn_count--;
- }
- else
- {
- ai_sost = 1;
- _xscale = - _xscale;
- }
- break;
- case 8:
- if(_currentframe < frame_wet || _currentframe > frame_wet_last)
- {
- gotoAndPlay(frame_wet);
- }
- if(wet_count > 0)
- {
- wet_count--;
- }
- else
- {
- ai_sost = 1;
- }
- }
- if((sost == 1 || sost == 2 || sost == 3) && (ai_sost == 1 || ai_sost == 2 || ai_sost == 3))
- {
- if(_xscale > 0)
- {
- var dx = 12;
- }
- else
- {
- var dx = -12;
- }
- if(!_level0.hero.immortal && (_level0.hero.sost == 1 || _level0.hero.sost == 2 || _level0.hero.sost == 3) && (_X + dx >= _level0.hero._x - 27 && _X + dx <= _level0.hero._x + 25) && (_Y + 28 >= _level0.hero._y - 8 && _Y - 16 <= _level0.hero._y + 28))
- {
- _level0.hero.sost = 9;
- _level0.hero.death_index = 0;
- _level0.hero._xscale = _xscale;
- _level0.hero.gotoAndPlay(_level0.hero.frame_death);
- }
- }
- }
- }
- }
-